package com.hemaapp.yjnh.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 类描述：正则表达式工具
 * 创建人：GuiyouZhang
 * 创建时间：2016/12/13 16:10
 * 修改备注：
 */
public class RegexUtils {

    /**判断email地址
     * @param email
     * @return
     */
    public static boolean judgeEmail(String email) {
        Pattern pattern = Pattern
                .compile("^[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?$");
        Matcher matcher = pattern.matcher(email);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }

    /**判断身份证号
     * 规则：
     *      15位
     *      18位：第一位1-9，第2-6位是数字，第七位是1或2，第8-位
     * @param idNum
     * @return
     */
    public static boolean judgeIdNum(String idNum) {
        Pattern pattern;
        if (idNum.length() == 15) {
            pattern = Pattern
                    .compile("^[1-9]\\d{7}((0\\d)|(1[0-2]))(([012]\\d)|3[0-1])\\d{3}$");
        }else if (idNum.length() == 18) {
            pattern = Pattern
                    .compile("^[1-9]\\d{5}[12]\\d{3}((0\\d)|(1[0-2]))(([012]\\d)|3[0-1])\\d{3}([0-9Xx])$");
        }else
            return false;
        Matcher matcher = pattern.matcher(idNum);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }
    /**判断11位手机号地址
     * 规则：第一位是1，第二位是3-8，其余的是数字，一共11位
     * @param mobile
     * @return
     */
    public static boolean judgeMobile(String mobile) {
        Pattern pattern = Pattern
                .compile("^1[3-8]\\d{9}$");
        Matcher matcher = pattern.matcher(mobile);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }
}
